// Header Protection
#ifndef _FILE_H_
#define _FILE_H_

// Include Files
#include <stdio.h>

// Namespace
namespace IE
{
	/////////////////////////////////////////////////////////////////////////////////
	// This class is a wrapper around platform specific file systems which can be 
	//     used for file input and output.
	// TODO: currently just a thin wrapper around windows + C "FILE"
	class file_t
	{
	public:

		file_t() : m_pFile(NULL) { }

		~file_t() { }

	private:

		file_t( file_t const &_rRHS );

		file_t &operator =( file_t const &_rRHS );

	public:

		bool_t Open( char_t const *_szFilename, char_t const *_szMode );

		void Close();

		void ReadLine( char_t *_szBuffer, uint_t _uLength );

		uint_t GetSize();

		uint_t Read( byte_t *_pBuffer, uint_t _uSize );

		uint32_t ReadUInt32();

	private:

		FILE *m_pFile;
	};
}

// Header Protection
#endif // _FILE_H_
